iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0
DevOps

Golang X DevOps系列 第 3

Day03 - 了解你的第一個 GO 程式

  • 分享至 

  • xImage
  •  

開始寫我們的第一個 Go 程式吧
我自己是用VScode進行開發的

先來看看最簡單的 Go 程式吧?

package main //這個檔案會被compile

import "fmt" //另一個可以把package引入的地方

func main(){
    fmt.Println("Iron Man")   
}

先創一個資料夾放檔案 然後再創一個.go檔放上面的code

mkdir ironman
  • 第一行是指會用到main 的package 因為他是整隻程式的entry point

  • import "fmt" 是因為下面的Println是fmt package裡的東西

package

  • 有寫過C或C++的話 這跟他的library是一樣的概念

    • ex: <stdio.h>
  • 其實就是一堆的.go檔案

  • 可以直接引用已經寫好的.go 檔案 不用自己刻

  • 在Go中 有分兩種package

    • main package
      • 用來編出執行檔
      • 只有含有package main 的會被compile 且不能被其他檔案引入
      • 必定含有main function
    • reusable package
      • 又被稱作library或dependency
      • 拿來做為可重複使用的程式邏輯(就是引入已經寫好的function

簡單的指令介紹

go build

  • 編譯你的GO檔案(含有package main的那個)
  • 產出執行檔
# 產生執行檔 !!一定要包有package main
go build [fileName]

# 只跑下面那一行 會自動找到package main 的檔案
go build

go mod init

  • 會在底下產生一個go.mod檔案
  • 裡面包含Go的版本合會使用到的modules
  • 當我們在run完go build的時候會產生一個go.sum的檔案
go mod init  [module-path]

go mod tidy

  • 會引入你所需要用到的package
  • import 的裡面的那些東西

go run

  • 執行檔案但是不編譯
go run .

go.sum

  • 裡面會含有checksum
  • 避免重新下載到package 而是用cache(在$GOPATH/pkg/mod)
  • 你不會需要去動到他 因為他是自動生成的檔案

跑看看你的 Go 程式吧

  • 先在你創的所在目錄cmd打上
go mod init ironman/main
  • module path沒有限定,但通常在開發環境下會以資料夾名稱和主程式結合起來

  • 以上面的命名規則就是在ironman的資料夾下,而main是我的主函式

  • 接著打上tidy 來引入需要的dependency

go mod tidy
  • 接下來可以試試看go run .

理論上是可以跑出'Iron Man'或者你打的東西

  • 或者你可以試試看go build 的指令
  • 它會在當前路徑底下 生成可執行的exe檔

關於引號的小小提醒

Golang在辨識字串的時候 嚴格要求使用雙引號(") 不然你在run或者是build的時候就會跑出錯誤
像是下面這一行error 看到的時候就要注意自己有沒有用到單引號

main.go:4:2: illegal rune literal

接著我們要來寫自己的module了


上一篇
Day02 - 寫好程式,從架設一個好的環境開始
下一篇
Day04 - 譜出屬於你自己的module
系列文
Golang X DevOps30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言